package pro.shushi.pamirs.hr.core.service;

import org.springframework.stereotype.Service;
import pro.shushi.pamirs.core.common.standard.service.impl.AbstractStandardModelService;
import pro.shushi.pamirs.framework.connectors.data.sql.query.LambdaQueryWrapper;
import pro.shushi.pamirs.framework.connectors.data.sql.update.LambdaUpdateWrapper;
import pro.shushi.pamirs.hr.api.model.org.Department;
import pro.shushi.pamirs.hr.api.service.DepartmentService;
import pro.shushi.pamirs.meta.annotation.Fun;
import pro.shushi.pamirs.meta.annotation.Function;
import pro.shushi.pamirs.meta.api.dto.condition.Pagination;

import java.util.List;

@Service
@Fun(DepartmentService.FUN_NAMESPACE)
public class DepartmentServiceImpl extends AbstractStandardModelService<Department> implements DepartmentService {

    @Function
    @Override
    public Integer updateBatch(List<Department> list) {
        return rawUpdateBatch(list);
    }

    @Function
    @Override
    public Integer updateByWrapper(Department data, LambdaUpdateWrapper<Department> wrapper) {
        return super.updateByWrapper(data, wrapper);
    }

    @Function
    @Override
    public Department createOrUpdate(Department data) {
        return super.createOrUpdate(data);
    }

    @Function
    @Override
    public List<Department> delete(List<Department> list) {
        return super.delete(list);
    }

    @Function
    @Override
    public Department deleteOne(Department data) {
        return super.deleteOne(data);
    }

    @Function
    @Override
    public Pagination<Department> queryPage(Pagination<Department> page, LambdaQueryWrapper<Department> queryWrapper) {
        return super.queryPage(page, queryWrapper);
    }

    @Function
    @Override
    public Department queryOne(Department query) {
        Department Department = super.queryOne(query);
        return Department;
    }

    @Function
    @Override
    public Department queryOneByWrapper(LambdaQueryWrapper<Department> queryWrapper) {
        Department Department = super.queryOneByWrapper(queryWrapper);
        return Department;
    }

    @Function
    @Override
    public List<Department> queryListByWrapper(LambdaQueryWrapper<Department> queryWrapper) {
        List<Department> list = super.queryListByWrapper(queryWrapper);
        return list;
    }

    @Function
    @Override
    public Long count(LambdaQueryWrapper<Department> queryWrapper) {
        return super.count(queryWrapper);
    }
}
